struct BST_Node
{
struct FileDescriptor *data; //A node can be a directory or a file's file descriptor and node.locationfullpath gives path of the file to be searched.
struct BST_Node *left;
struct BST_Node *right;
struct BST_Node *parent;
};
struct BST_Node *bst_root;
struct FileDescriptor *data_fd;
void initialize_BST();
void displayBST(struct BST_Node *temp);
int validatePath(struct BST_Node  *newNode,struct BST_Node  *root);
int flagReturn(struct BST_Node *bstNode);
int validateSearch(struct BST_Node* bstfirst,char* search_val);
struct BST_Node* search(struct BST_Node* node,char* search_val);
void delete_bstnode(struct BST_Node *root, char *path);
void transplant(struct BST_Node *root,struct BST_Node* u,struct BST_Node* v);
void BSTInsert(struct FileDescriptor* ins_val );
